Fix ioapic_rte_to_remap_entry() on IA64.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 21 Oct 2008 08:53:34 +0000 (09:53 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 21 Oct 2008 08:53:34 +0000 (09:53 +0100)
Signed-off-by: Anthony Xu <anthony.xu@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
xen/drivers/passthrough/vtd/intremap.c

index 93218b6c09a2804361f98fc6ff79eda8efd5ecca..059ebf5a244b95bd9b48341bd489065fc6dd8558 100644 (file)
@@ -129,7 +129,13 @@ static int ioapic_rte_to_remap_entry(struct iommu *iommu,
     memcpy(&new_ire, iremap_entry, sizeof(struct iremap_entry));
 
     if ( rte_upper )
+    {
+#if defined(__i386__) || defined(__x86_64__)
         new_ire.lo.dst = (value >> 24) << 8;
+#else /* __ia64__ */
+        new_ire.lo.dst = value >> 16;
+#endif
+    }
     else
     {
         *(((u32 *)&new_rte) + 0) = value;